﻿//sqlitedatabase.h
#ifndef _SQLITE_DATABASE_H_
#define _SQLITE_DATABASE_H_

#include <QObject>
#include <QScopedPointer>
#include "IDatabase.h"

class  SqliteDatabase : public IDatabase
{
    Q_OBJECT

public:    
    explicit SqliteDatabase(QObject *parent, QString databaseName,QString tableName,QString databaseType);
    ~SqliteDatabase();

    //实现Sqlite数据库操作对应的接口
    //向数据库的某个表中插入一条Json数据
    bool createRow(const QString& tableName, const QString& id, const QJsonObject& jsonObject) const override;

    //删除数据表中的某条数据
    bool deleteRow(const QString& tableName, const QString& id) const override;

    //查找包含特定文本内容的数据条目
    QJsonArray find(const QString& tableName, const QString& searchText) const override;

    //根据ID查找某个用户的数据
    QJsonObject readRow(const QString& tableName, const QString& id) const override;

    //查找所有数据
    QJsonArray readAllRows(const QString& tableName) const override;

    //更新某个用户的数据
    bool updateRow(const QString& tableName, const QString& id, const QJsonObject& jsonObject) const override;

private:
    QString connectName;
    //数据私有类用来存储类型的私有数据
    class Implementation;
    QScopedPointer<Implementation> implementation;

    QTimer* timCheckStatus;

};

#endif
